﻿using System;
using TypeBuilderFx.Core.Emitters;

namespace Simp.Model
{
	/// <summary>Represents a binding of a parameter to a <c>value</c> (a <see cref="IExpression"/>).</summary>
	public interface IParameterBinding
	{
		/// <summary>Name of the parameter to bind.</summary>
		string Name { get; }

		/// <summary>Value to bind on the parameter.</summary>
		/// <remarks>This value is optional, in case the binding doesn't have a default value.</remarks>
		[ReferenceTypeValidation(ReferenceTypeValidationLevel.AllowAll)]
		IExpression Value { get; }
	}
}